define(function() {
	return function($compile, $scope) {
		require([ "AppPathDir/order/serviceOrderInfos/support",
				"AppPathDir/order/serviceOrderInfos/pay",
				"AppPathDir/order/serviceOrderInfos/applyUpdate",
            "AppPathDir/order/serviceOrderInfos/rebackRecode",
				"AppPathDir/order/serviceOrderInfos/detail", "AppPathDir/order/serviceOrderInfos/detailForPay", "PDUtilDir/util",
				"PDUtilDir/tool", "PDUtilDir/inputSelect",
				"css!AppPathDir/order/serviceOrderInfos/views/css/css"], function(Support, PaySupport, ApplyUpdate, RebackRecodeSupport, DetailSupport, DetailForPaySupport, Util, Tool, inputSelect) {
			$scope.search = {};
			$scope.cache = {
				types: new Array(),
				typeMap: new Map(),
                applyTypes: new Array(),
                applyTypeMap: new Map(),
				orderStatus: new Array(),
				orderStatusMap: new Map(),
				images: new Array()
			};
			/* 查询 */
			$scope.searchSupport = {
				run : function() {
					$scope.grid.reload({
						queryParam : {
							model : JSON.stringify($scope.search)
						}
					})
				}
			};
			/* 取消订单 */
//			$scope.cancelOrder = {
//				run : function(id) {
//					Util.confirm("是否确认", function() {
//						$.ajax({
//							url : getServer() + "/flea/hclv/serviceOrder/addServiceOrder.htmls",
//							data : {
//								model : id
//							},
//							success : function(data) {
//								Util.alert(data.message);
//								$scope.grid.refresh();
//							}
//						});
//					})
//				}
//			};
			/* 确认 */
			$scope.replyFun = {
				run : function(id) {
					Util.confirm("是否确认", function() {
						$.ajax({
							url : getServer() + "/flea/hclv/serviceOrder/updateOrderToConfirm.htmls",
							data : {
								model : id
							},
							success : function(data) {
								Util.alert(data.message);
								$scope.grid.refresh();
							}
						});
					})
				}
			};
			/* 支付 */
			$scope.paySupport = PaySupport($scope, $compile);
			/* 申请修单 */
			$scope.applyUpdate = ApplyUpdate($scope, $compile);
			/* 订单详情 */
			$scope.detailSupport = DetailSupport($scope, $compile);
			/* 订单支付详情 */
			$scope.detailForPayOrder = DetailForPaySupport($scope, $compile);
            /* 退款記錄 */
            $scope.rebackRecode = RebackRecodeSupport($scope, $compile);

			/* 订单完成 */
			$scope.doneOrder = {
				run : function(id) {
					Util.confirm("是否确认", function() {
						$.ajax({
							url : getServer() + "/flea/hclv/serviceOrder/updateOrderToFinish.htmls",
							data : {
								model : id
							},
							success : function(data) {
								Util.alert(data.message);
								$scope.grid.refresh();
							}
						});
					})
				}
			};
			/* 关闭订单 */
			$scope.closeOrder = {
				run : function(id) {
					Util.confirm("是否确认", function() {
						$.ajax({
							url : getServer() + "/flea/hclv/serviceOrder/updateOrderToClose.htmls",
							data : {
								model : id
							},
							success : function(data) {
								Util.alert(data.message);
								$scope.grid.refresh();
							}
						});
					})
				}
			};
			/* 支付类型 */
			$.ajax({
				url : getServer() + "/flea/hclv/getPayType.htmls",
				success : function(data) {
                    if(data.status != 200){
                        return;
                    }
					$scope.cache.types = data.data;
					$.each(data.data, function(index, row) {
						$scope.cache.typeMap.set(row.dictCode, row.dictName);
					});
					$scope.gridFun.run();
				}
			});

            /* 申請类型 */
            $.ajax({
                url : getServer() + "/flea/hclv/getServiceApplyType.htmls",
                success : function(data) {
                    if(data.status != 200){
                        return;
                    }
                    $scope.cache.applyTypes = data.data;
                    $.each(data.data, function(index, row) {
                        $scope.cache.applyTypeMap.set(row.dictCode, row.dictName);
                    });
                    $scope.gridFun.run();
                }
            });
			/* 当前登录用户组织id */
			$.ajax({
				url : getServer() + "/flea/hclv/getCurrentOrgUUid.htmls",
				success : function(data) {
                    if(data.status != 200){
                        return;
                    }
					$scope.cache.supplierOrgId = data.data;
					$scope.gridFun.run();
				}
			});
			// 状态
			$.ajax({
				url : getServer() + "/flea/hclv/getServiceOrgderStatus.htmls",
				success : function(data) {
                    if(data.status != 200){
                        return;
                    }
					$scope.cache.orderStatus = data.data;
					$.each(data.data, function(index, row) {
						$scope.cache.orderStatusMap.set(row.dictCode, row.dictName);
					});
					// 初始化下拉框
					inputSelect.dropCache();
					inputSelect({
						id : "orderStatus",
						key : {
							id : "dictCode",
							name : "dictName",
							data : "data",
						},
						data : $scope.cache.orderStatus,
						simpleData : true,
						searchAble : false,
						callback : function(id) {
							var id = id[0];
							$scope.search.orderStatus = id;
						}
					});
					$scope.gridFun.run();
				}
			});
			$("#startTime").datetimepicker({
				// 设置使用语言：cn是自定义的中文版本，还可以扩展其他语言版本
				language : "cn",
				// 输出格式化
				// format : 'yyyy-mm-dd hh:ii:ss',
				format : 'yyyy-mm-dd',
				// 直接选择‘今天’
				todayBtn : true,
				// 设置最精确的时间选择视图
				minView : 'month',
				// 高亮当天日期
				todayHighlight : true,
				// 显示“上午”“下午”
				showMeridian : true,
				// 选择完毕后自动关闭
				autoclose : true
			});
			$("#endTime").datetimepicker({
				// 设置使用语言：cn是自定义的中文版本，还可以扩展其他语言版本
				language : "cn",
				// 输出格式化
				// format : 'yyyy-mm-dd hh:ii:ss',
				format : 'yyyy-mm-dd',
				// 直接选择‘今天’
				todayBtn : true,
				// 设置最精确的时间选择视图
				minView : 'month',
				// 高亮当天日期
				todayHighlight : true,
				// 显示“上午”“下午”
				showMeridian : true,
				// 选择完毕后自动关闭
				autoclose : true
			});
			/* 查询 end */
			$scope.paySupport = PaySupport($scope, $compile);
//			$scope.updateSupport = UpdateSupport($scope, $compile);
			$scope.gridFun = {
				run : function(id) {
					if($scope.cache.orderStatus.length > 0 /*&& $scope.cache.types.length > 0*/ && $scope.cache.supplierOrgId)
					$scope.grid = Support.init($scope.cache, $scope.detailSupport, $scope.searchSupport);
				}
			};
		})
	}
});